home *** CD-ROM | disk | FTP | other *** search
- package Cutscene
- {
- import Common.ResourceManager;
- import caurina.transitions.Tweener;
- import flash.display.*;
- import flash.media.Sound;
- import flash.text.TextField;
-
- public class CutsceneDialogue
- {
-
- public static var txtOwner:TextField;
-
- public static var txtOwnerbg_mc:MovieClip;
-
- public static var txtDialogue:TextField;
-
- public static var dialogueBox:MovieClip = null;
-
- public static var txtSkipButton_mc:SimpleButton;
-
- public static var txtSkip:TextField;
-
-
- private var delay:int = 2;
-
- private var animplay:String = "";
-
- private var movey:int = -100;
-
- private var hidebox:String = "";
-
- private var movex:int = -100;
-
- private var dialogue:String = "";
-
- private var initialalpha:int = 20;
-
- private var decisions:Array;
-
- private var soundFX:String = "";
-
- private var namexpos:int = -100;
-
- private var finalalpha:int = -100;
-
- private var owner:String = "";
-
- private var puppet:String = "";
-
- public function CutsceneDialogue()
- {
- owner = "";
- puppet = "";
- dialogue = "";
- soundFX = "";
- movex = -100;
- movey = -100;
- namexpos = -100;
- delay = 2;
- initialalpha = 20;
- finalalpha = -100;
- animplay = "";
- hidebox = "";
- decisions = [];
- super();
- }
-
- public static function fromXML(param1:XML, param2:MovieClip) : CutsceneDialogue
- {
- var _loc3_:CutsceneDialogue = null;
- var _loc4_:XML = null;
- _loc3_ = new CutsceneDialogue();
- _loc3_.dialogue = Localization.getString(param1.toString());
- for each(_loc4_ in param1.attributes())
- {
- if(_loc4_.name() == "owner")
- {
- _loc3_.owner = _loc4_.toString();
- }
- else if(_loc4_.name() == "sound")
- {
- _loc3_.soundFX = _loc4_.toString();
- }
- else if(_loc4_.name() == "puppet")
- {
- _loc3_.puppet = _loc4_.toString();
- }
- else if(_loc4_.name() == "movex")
- {
- _loc3_.movex = _loc4_.toString();
- }
- else if(_loc4_.name() == "movey")
- {
- _loc3_.movey = _loc4_.toString();
- }
- else if(_loc4_.name() == "delay")
- {
- _loc3_.delay = _loc4_.toString();
- }
- else if(_loc4_.name() == "namexpos")
- {
- _loc3_.namexpos = _loc4_.toString();
- }
- else if(_loc4_.name() == "alpha")
- {
- _loc3_.initialalpha = _loc4_.toString();
- }
- else if(_loc4_.name() == "finalalpha")
- {
- _loc3_.finalalpha = _loc4_.toString();
- }
- else if(_loc4_.name() == "anim")
- {
- _loc3_.animplay = _loc4_.toString();
- }
- else if(_loc4_.name() == "hidebox")
- {
- _loc3_.hidebox = _loc4_.toString();
- }
- else
- {
- _loc3_.decisions.push(_loc4_.toString());
- }
- }
- return _loc3_;
- }
-
- public function updateTextElement(param1:int) : *
- {
- if(param1 - 1 < dialogue.length)
- {
- txtDialogue.text = dialogue.slice(0,param1);
- }
- }
-
- public function get LengthOfText() : *
- {
- return dialogue.length;
- }
-
- public function get Owner() : String
- {
- return owner;
- }
-
- public function hasDecision() : Boolean
- {
- return decisions.length > 0;
- }
-
- public function initializeDialogue(param1:ResourceManager, param2:CutsceneState) : int
- {
- var _loc3_:MovieClip = null;
- var _loc4_:Sound = null;
- var _loc5_:* = undefined;
- _loc3_ = param2.getPerson(owner);
- if(hidebox != "")
- {
- if(dialogueBox != null)
- {
- Tweener.addTween(dialogueBox,{
- "alpha":0,
- "time":delay
- });
- }
- Tweener.addTween(txtDialogue,{
- "alpha":0,
- "time":delay
- });
- Tweener.addTween(txtOwner,{
- "alpha":0,
- "time":delay
- });
- txtSkip.visible = false;
- txtSkipButton_mc.visible = false;
- return 2;
- }
- if(animplay != "")
- {
- _loc3_.gotoAndPlay(animplay);
- return 2;
- }
- if(movex != -100)
- {
- _loc3_.alpha = initialalpha / 100;
- Tweener.addTween(_loc3_,{
- "alpha":1,
- "time":delay
- });
- Tweener.addTween(_loc3_,{
- "x":movex,
- "time":delay
- });
- movex = -100;
- return 2;
- }
- if(movey != -100)
- {
- _loc3_.alpha = initialalpha / 100;
- Tweener.addTween(_loc3_,{
- "alpha":1,
- "time":delay
- });
- Tweener.addTween(_loc3_,{
- "y":movey,
- "time":delay
- });
- movey = -100;
- return 2;
- }
- if(finalalpha != -100)
- {
- _loc3_.alpha = initialalpha / 100;
- Tweener.addTween(_loc3_,{
- "alpha":finalalpha / 100,
- "time":delay
- });
- finalalpha = -100;
- return 2;
- }
- txtOwner.text = owner;
- if(namexpos == -100)
- {
- txtOwnerbg_mc.x = _loc3_.x;
- }
- else
- {
- txtOwnerbg_mc.x = namexpos;
- }
- if((_loc4_ = param1.getResource(soundFX,ResourceManager.C_SOUND) as Sound) != null)
- {
- _loc4_.play();
- }
- if(decisions.length > 0)
- {
- _loc5_ = 0;
- while(_loc5_ < decisions.length)
- {
- param2.getDecision(decisions[_loc5_]).attachToParent();
- _loc5_++;
- }
- }
- return 1;
- }
-
- public function addDecision(param1:String) : *
- {
- this.decisions.push(param1);
- }
-
- public function talk(param1:CutsceneState, param2:int) : *
- {
- var _loc3_:MovieClip = null;
- if(param2 - 1 >= dialogue.length)
- {
- return;
- }
- _loc3_ = param1.getPerson(puppet);
- if(_loc3_ == null)
- {
- return;
- }
- if(_loc3_.mouth == null)
- {
- return;
- }
- if(_loc3_.mouth.currentLabel == "mouth" && isVowel(dialogue.charAt(param2)))
- {
- _loc3_.mouth.gotoAndPlay("mouthopen");
- }
- else if(_loc3_.mouth.currentLabel == "mouthopen" && !isVowel(dialogue.charAt(param2)))
- {
- _loc3_.mouth.gotoAndPlay("mouth");
- }
- }
-
- public function isVowel(param1:String) : Boolean
- {
- if(param1 == "a" || param1 == "A" || param1 == "e" || param1 == "E" || param1 == "i" || param1 == "I" || param1 == "o" || param1 == "O" || param1 == "u" || param1 == "U")
- {
- return true;
- }
- return false;
- }
- }
- }
-